#include <iostream>

using namespace std;

enum Test {
    ONE = 1,
    TWO = 2,
    THREE = 3
};

struct Data
{
    int a   : 30;
    unsigned int b   : 2;
};

class Base
{
public:
    virtual bool ret(bool val=false) const = 0;
};

class Ext: public Base
{
public:
    bool ret(bool val) const { return val; }
};


int main(int argc, char *argv[])
{
    Ext e;
    cout<<e.ret()<<endl;

    Data d;
    d.a = 1;
    d.b = 3;
    cout<<"a="<<d.a<<"; b="<<d.b<<endl;
    argc = argc; argv = argv;
    Test t = Test(2993);
    cout << t <<" sizeof(t)="<< sizeof(t)<< endl;
    cout << "Hello World!" << endl;
    return 0;
}
